package com.my.kindlesend.exception;

import com.my.kindlesend.enums.ResultCode;
import lombok.Getter;

/**
 * 基础异常类
 * 自定义异常的父类，包含错误码和错误消息
 */
@Getter
public class BaseException extends RuntimeException {

    private final Integer code;
    private final String message;

    /**
     * 使用ResultCode构造异常
     * @param resultCode 结果码枚举
     */
    public BaseException(ResultCode resultCode) {
        super(resultCode.getMessage());
        this.code = resultCode.getCode();
        this.message = resultCode.getMessage();
    }

    /**
     * 使用错误码和错误消息构造异常
     * @param code 错误码
     * @param message 错误消息
     */
    public BaseException(Integer code, String message) {
        super(message);
        this.code = code;
        this.message = message;
    }

    /**
     * 使用错误消息构造异常，默认使用500错误码
     * @param message 错误消息
     */
    public BaseException(String message) {
        super(message);
        this.code = 500;
        this.message = message;
    }
}